/**
 * 文件名：@HandlerInfo.java <br/>
 * 包名：cn.efunbox.afw.core.entity <br/>
 * 项目名：afw-core <br/>
 * @author xtwin <br/>
 */
package cn.efunbox.afw.core.mvc;

import cn.efunbox.afw.core.annotation.mvc.Bind;
import cn.efunbox.afw.core.annotation.mvc.Result;
import cn.efunbox.afw.core.invocation.Invoker;
import cn.efunbox.afw.core.mvc.template.Templator;

/**
 * 类名：HandlerInfo  <br />
 *
 * 功能：处理器信息
 *
 * @author xtwin <br />
 * 创建时间：2015年12月9日 上午10:38:07  <br />
 * @version 2015年12月9日
 */
public interface HandlerInfo {

	/**
	 * 
	 * 功能：获取当前的处理器 <br/>
	 *
	 * @author xtwin <br/>
	 * @version 2015年12月9日 上午10:40:23 <br/>
	 */
	<T> T getHandler();
	
	/**
	 * 功能：获取前置执行器 <br/>
	 *
	 * @author xtwin <br/>
	 * @version 2015年12月9日 上午10:43:14 <br/>
	 */
	Invoker[] getPreInvokers();
	
	/**
	 * 
	 * 功能：获取后置执行器 <br/>
	 *
	 * @author xtwin <br/>
	 * @version 2015年12月9日 上午10:43:04 <br/>
	 */
	Invoker[] getPostInvokers();

	/**
	 * 
	 * 功能：获取当前的模板 <br/>
	 *
	 * @author xtwin <br/>
	 * @version 2015年12月9日 上午10:40:21 <br/>
	 */
	Templator getTemplator();
	
	/**
	 * 
	 * 功能：获取默认结果类型 <br/>
	 *
	 * @author xtwin <br/>
	 * @version 2015年12月9日 上午10:40:18 <br/>
	 */
	String getResultType();
	
	/**
	 * 
	 * 功能：获取提取配置 <br/>
	 *
	 * @author xtwin <br/>
	 * @version 2015年12月9日 上午10:40:15 <br/>
	 */
	String[] getExtract();
	
	/**
	 * 
	 * 功能：获取绑定信息 <br/>
	 *
	 * @author xtwin <br/>
	 * @version 2015年12月9日 上午10:40:12 <br/>
	 */
	Bind[] getBinds();
	
	/**
	 * 
	 * 功能：获取结果对象 <br/>
	 *
	 * @author xtwin <br/>
	 * @version 2015年12月9日 下午1:54:15 <br/>
	 */
	Result getResult();
}
